#pragma once

#include <string>
#include <sstream>

/// Klasa reprezentujaca punkt przestrzeni.
template <typename T> 
class Point
{
public:
	/// Kontruktor.
	inline Point()
	{
	}

	/** Konstruktor
	* @param x Wspolrzedna x.
	* @param y Wspolrzedna y.
	* @param z Wspolrzedna z.
	*/
	inline Point(T x, T y, T z)
	{
		X = x;
		Y = y;
		Z = z;
	}

	/// Wypisuje punkt na standardowe wyjscie.
	inline virtual std::string ToString() const
	{
		std::ostringstream oss;
		oss << "( " << X << ", " << Y << ", " << Z << " )";
		return std::string(oss.str());
	}

	/// Wspolrzedna x.
	T X;
	/// Wspolrzedna y.
	T Y;
	/// Wspolrzedna z.
	T Z;
};




